package com.caocaog.market.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.caocaog.market.entity.Information;
import com.caocaog.market.vo.InformationVO;

import java.util.List;

/**
 * 信息发布
 *
 * @author chechen
 * @date 2021-11-13
 */
public interface InformationService extends IService<Information> {

    IPage<InformationVO> queryInformationPage(Page<InformationVO> page, Information information);

    IPage<InformationVO> queryInformationPageAllApproved(Page<InformationVO> page, Information information);

    IPage<InformationVO> queryInformationPageAllYourSelf(Page<InformationVO> page, Information information);

    InformationVO getDetailById(String id);

    String addInformation(InformationVO informationVO);

    int updateInformation(InformationVO informationVO);

    int updateAndSubmitReviewInformation(InformationVO informationVO);

    int putOnSaleInfo(String id);

    int pullOffShelvesInfo(String id);

    /**
     * 提交审核
     *
     * @param id 信息发布表主键
     * @return 受影响行数
     */
    int submitReview(String id);

    /**
     * 审核通过
     *
     * @param id 信息发布表主键
     * @return 受影响行数
     */
    int approvedReview(String id);

    /**
     * 审核未通过
     *
     * @param id 信息发布表主键
     * @return 受影响行数
     */
    int notApprovedReview(String id);

    int deleteInformation(String id);

    int deleteBatchInformation(List<String> ids);

    /**
     * 阅读数量 + 1
     *
     * @param id 信息发布表主键
     */
    void readQtyPlusOne(String id);

    /**
     * 回复数量 + 1
     *
     * @param id 信息发布表主键
     */
    void replyQtyPlusOne(String id);

    /**
     * 回复数量 - 1
     *
     * @param id 信息发布表主键
     */
    void replyQtyMinusNum(String id, Integer num);

}
